<?php

    Class ApuestasDAO
    {
        private static function getInstance($rs)
        {
            $apuesta = new Apuesta();

            $apuesta->idApuesta = $rs->fields["idapuesta"];
            $apuesta->monto     = $rs->fields["monto"];
            $apuesta->resultado = $rs->fields["resultado"];
            $apuesta->idUsuario = $rs->fields["idusuario"];
            $apuesta->idPartido = $rs->fields["idpartido"];
            $apuesta->fecha     = $rs->fields["fecha"];

            return $apuesta;
        }

        static function add(&$apuesta)
        {
            $db = MyConnection::$db;
            
            $query = $db->Prepare("INSERT INTO apuestas (monto, resultado, idusuario, idpartido, fecha) VALUES (?,?,?,?,?)");
            return $db->Execute($query, array($apuesta->monto, $apuesta->resultado, $apuesta->idUsuario, $apuesta->idPartido, $apuesta->fecha));
        }
        

        static function getById($id)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM apuestas WHERE idapuesta = $id");

            if (!$rs->EOF)
            {
                return self::getInstance($rs);
            }
        }

        static function getByIdUsuario($id)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM apuestas WHERE idusuario = $id");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }

        static function getAll()
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM apuestas");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }

        static function getUltimas10($idUsuario)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM apuestas WHERE idusuario = $idUsuario ORDER BY idapuesta DESC LIMIT 10");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }

        static function getUltimos6Meses($idUsuario)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT * FROM apuestas WHERE idusuario = $idUsuario AND fecha > (CURRENT_DATE - interval '6 months')");

            $all = array();
            while (!$rs->EOF)
            {
                $all[] = self::getInstance($rs);
                $rs->MoveNext();
            }

            return $all;
        }

        static function getSumaMontos($idUsuario)
        {
            $db = MyConnection::$db;

            $rs = $db->Execute("SELECT sum(monto) AS suma FROM apuestas WHERE idusuario = $idUsuario");

            if (!$rs->EOF)
            {
                return $rs->fields["suma"];
            }
        }


    }

?>